package com.example.data_save;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.provider.ContactsContract;

import com.example.data_save.entity.Contcat;

public class ConcatAddActivity extends AppCompatActivity implements View.OnClickListener {

    private EditText tvConcatName;
    private EditText tvConcatTelephone;
    private EditText tvConcatEmail;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_concat_add);
        tvConcatName = findViewById(R.id.et_concatName);
        tvConcatTelephone = findViewById(R.id.et_concatTelephone);
        tvConcatEmail = findViewById(R.id.et_concatEmail);

        findViewById(R.id.btn_addPerson).setOnClickListener(this);
        findViewById(R.id.btn_deletePerson).setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btn_addPerson:
                Contcat contcat = new Contcat();
                contcat.name = tvConcatName.getText().toString().trim();
                contcat.telephone = Integer.parseInt(tvConcatTelephone.getText().toString().trim());
                contcat.email = tvConcatEmail.getText().toString().trim();

                //如何往手机通讯录里面添加联系人信息？方式一：使用ContentResolver多次写入,每次一个字段
                addContcats(getContentResolver(),contcat);
                break;
            case R.id.btn_deletePerson:
                break;
        }
    }

    private void addContcats(ContentResolver contentResolver, Contcat contcat) {
        ContentValues values = new ContentValues();
        //往 raw_contacts 添加联系人记录,并获取添加后的联系人编号;
        Uri uri = contentResolver.insert(ContactsContract.RawContacts.CONTENT_URI, values);
        long rawContactId = ContentUris.parseId(uri);

        ContentValues name = new ContentValues();
        //关联联系人编号
        name.put(ContactsContract.Contacts.Data.RAW_CONTACT_ID,rawContactId);
        //’姓名‘的数据类型
        name.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
        //联系人的姓名
        name.put(ContactsContract.Contacts.Data.DATA2,contcat.name);
        //往提供器添加联系人的姓名记录
        contentResolver.insert(ContactsContract.RawContacts.CONTENT_URI,values);


        ContentValues phone = new ContentValues();
        //关联联系人编号
        phone.put(ContactsContract.Contacts.Data.RAW_CONTACT_ID,rawContactId);
        //’电话号码‘的数据类型
        phone.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
        //联系人的电话号码
        phone.put(ContactsContract.Contacts.Data.DATA1, contcat.telephone);
        //联系类型,1表示家庭 2表示工作
        phone.put(ContactsContract.Contacts.Data.DATA2, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
        //往提供器添加联系人的姓名记录
        contentResolver.insert(ContactsContract.RawContacts.CONTENT_URI,phone);


        ContentValues email = new ContentValues();
        //关联联系人编号
        email.put(ContactsContract.Contacts.Data.RAW_CONTACT_ID,rawContactId);
        //’电话号码‘的数据类型
        email.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
        //联系人的电话号码
        email.put(ContactsContract.Contacts.Data.DATA1, contcat.email);
        //联系类型,1表示家庭 2表示工作
        email.put(ContactsContract.Contacts.Data.DATA2, ContactsContract.CommonDataKinds.Email.TYPE_WORK);
        //往提供器添加联系人的姓名记录
        contentResolver.insert(ContactsContract.RawContacts.CONTENT_URI,email);


    }
}